Online trusted platform module

ABSTRACT

An online trusted platform module (TPM) in communication with a security module that can be located elsewhere in the network in a server machine. In an embodiment, the online TPM is connected directly to a network interface card (NIC) that is also resident at the client. This allows the online TPM to communicate directly to the network, and therefore to the security module (without having to deal with the TCP/IP stack at the client machine in some circumstances, e.g., the boot process). In an embodiment, the communications channel between the online TPM and the security module is implemented using the transport layer security (TLS) protocol. A secure boot process is performed in advance of security processing. Typical security processing includes receipt, by the online TPM, of one or more commands from an application. The online TPM then proxies out the commands to the security module. After the security module has completed its processing of the commands, results of the processing and any related status information is returned to the online TPM.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] Not applicable.

STATEMENT REGARDING FEDERALLY-SPONSORED RESEARCH AND DEVELOPMENT

[0002] Not applicable.

REFERENCE TO MICROFICHE APPENDIX/SEQUENCE LISTING/TABLE/COMPUTER PROGRAM LISTING APPENDIX

[0003] Not applicable.

BACKGROUND OF THE INVENTION

[0004] 1. Field of the Invention

[0005] The invention described herein relates to information security and to security in networked information systems in particular.

[0006] 2. Background Art

[0007] In a networked information system, information security functions are often allocated on a per machine basis. Each machine in the network is traditionally responsible for the security of information that the machine sends, receives, stores, or otherwise processes. Relevant security functions include, but are not limited to, encryption, decryption, authentication, key management, and integrity assurance.

[0008] While there are obvious advantages to having such functionality at each machine, there are also disadvantages. First, replication of all such functionality at each machine is expensive. Second, the amount of logic required to execute these functions can be considerable. In a software embodiment, this translates to large amounts of code, and a large amount of memory. Speed can also be an issue in a software implementation, given the amount of logic that must be executed.

[0009] In a hardware embodiment, extensive functionality translates to a significant space requirement, since considerable silicon may be needed. This, in turn, can lead to additional design concerns, such as those related to power consumption and heat dissipation. Finally, if long term key storage is required (e.g., in an architecture that complies with the Trusted Computing Platform Alliance (TCPA) Main Specification) then non-volatile memory (NVM) is also required at each client.

[0010] What is needed, therefore, is a security architecture that makes all of the necessary security functionality available at machines in a network in a cost effective manner. Preferably, this is accomplished in a manner that requires minimal silicon and/or memory, and avoids the need for NVM.

BRIEF SUMMARY OF THE INVENTION

[0011] The invention described herein comprises an online trusted platform module (TPM) at client machines in a computer network. The TPM is online in the sense that it is in communication with a security module that can be located elsewhere in the network. In an embodiment of the invention, the online TPM is connected directly to a network interface card (NIC) that is also resident at the client. This allows the online TPM to communicate directly to the network and the security module. This circumvents the TCP/IP stack at the client machine, e.g., during the boot process. In an embodiment of the invention, the communications channel between the online TPM and the security module is implemented using the transport layer security (TLS) protocol.

[0012] The method of the present invention includes a secure boot process in advance of subsequent security processing. Typical security processing includes the receipt, by the online TPM, of one or more commands from an application.

[0013] The online TPM then proxies out the commands to the security module. As the security module completes execution of a command, the results and any related status information are returned to the online TPM.

BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES

[0014] The present invention will be described with reference to the accompanying drawings. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the left most digit in the reference number.

[0015]FIG. 1 is a block diagram illustrating a typical topology of a client-server computer network.

[0016]FIG. 2 is a block diagram illustrating the connectivity between an online TPM, an application, and a security module, according to an embodiment of the invention.

[0017]FIG. 3 is a block diagram illustrating an embodiment of an online TPM.

[0018]FIG. 4 is a block diagram illustrating logical components of an online TPM according to an embodiment of the invention.

[0019]FIG. 5 illustrates the flow of information between processing modules at a client machine, according to an embodiment of the invention.

[0020]FIG. 6 is a flowchart illustrating an embodiment of the method of the invention.

[0021]FIG. 7 is a flow chart illustrating the boot sequence, according to an embodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

[0022] A preferred embodiment of the present invention is now described. While specific configurations and arrangements are discussed, it should be understood that this is done for illustrative purposes only. A person skilled in the relevant art will recognize that other configurations and arrangements can be used without departing from the spirit and scope of the invention. It would be apparent to a person skilled in the relevant art that this invention can also be employed in a variety of other systems, networks, and applications.

[0023] I. Overview

[0024] The invention described herein comprises an online TPM located at machines in a computer network. The TPM is in communication with a security module which can be located elsewhere in the network. In an embodiment of the invention, the online TPM is connected directly to a co-located NIC. This allows the online TPM to communicate directly to the network and the security module.

[0025] This circumvents the TCP/IP stack at the client machine, e.g., during the boot process. In an embodiment of the invention, the communications channel between the online TPM and the security module is implemented using the TLS protocol.

[0026] The method of the invention includes a secure boot process in advance of subsequent security processing. Typical security processing includes the receipt, by the online TPM, of one or more commands from an application. The online TPM then proxies out the commands to the security module. As the security module completes execution of a command, the results and any related status information are returned to the online TPM.

[0027] II. System

[0028] The system context of the invention is illustrated in FIG. 1. A server or server-like device 105 is shown in communication with a set of clients or client-like devices, 110-130. Typically, device 105 provides services and data to each of devices 110-130. In an embodiment of the invention, server 105 includes a security module. One or more of the clients each include an online TPM. In an alternative embodiment, the clients are all connected to a security module, which is in turn connected to a separate server.

[0029]FIG. 2 illustrates the connectivity between an online TPM and a security module. Online TPM 210 receives commands from an application 220. In an embodiment of the invention, a command from application 220 is first processed through a software stack 230 before reaching online TPM 210. Software stack 230 may or may not be trusted. The command is then proxied by the online TPM 210 to security module 240, located elsewhere in the network. In an embodiment of the invention, online TPM 210, application 220, and software stack 230 can be included in a client, such as client 110 of FIG. 1. Moreover, in an embodiment of the invention, security module 240 can be implemented in hardware, and can be located in a trusted environment. Security module 240 can be located in a secure host, for example.

[0030] Connection 250 implements the channel between online TPM 210 and security module 240. In an embodiment of the invention, connection 250 uses the TLS protocol. Implementation of this protocol provides authentication between security module 240 and online TPM 210. Version 1.0 of this protocol is described more fully at http://www.ietf.org/rfc/rfc2246.txt, and is incorporated herein by reference in its entirety. A secure authentication and handshake process for establishment of a TLS connection is described more fully in a copending application entitled “System and Method for Distributed Security for Clients,” which is incorporated herein by reference in its entirety.

[0031] Security module 240 provides security functionality, such as key management and storage of some or all cryptographic state information on behalf of online TPM 210. After the command is processed by security module 240, result and status information is returned to online TPM 210 via connection 250. This information may then be forwarded from online TPM 210 to application 220. In an embodiment of the invention, security module 240 can be included in a server, such as server 105 of FIG. 1.

[0032] Moreover, security module 240 can be embodied in hardware, software, or some combination thereof. In the event of an embodiment that includes software, security module 240 can be upgraded by upgrading its software. Note that this can be done independently of online TPM 210, i.e., without necessarily having to upgrade or otherwise modify online TPM 210.

[0033] Note that multiple online TPMs embodied in multiple respective client machines can connect to a given security module. In such an arrangement, the security module provides security functionality to each connected online TPM in the manner just described.

[0034] An embodiment of online TPM 210 is illustrated in FIG. 3. The illustrated embodiment includes a master controller 310 connected to a bus 305. This embodiment also includes logic and storage for the maintenance of cryptographic keys. A cache for key encrypting keys (KEK) is provided by cache 320. An application key cache is also included in the form of cache 330. This embodiment also includes a random number generator (RNG) 340. Authentication logic is provided by a module 350 that implements the Secure Hash Algorithm (SHA-1) algorithm. Stream encryption is also provided. In the illustrated embodiment, this is implemented with a triple Data Encryption Standard (3DES) module 360. Storage and logic for public key operations is provided in module 370. Logic for ensuring the integrity of security operations is provided by module 380. The implementation shown also includes a data buffer 390. All of the above components are connected via bus 305. Note that because of the functionality provided by the security module, online TPM can be implemented without NVM.

[0035] Online TPM 210 is shown in the context of a client machine in FIG. 4. Between online TPM 210 and application 220 is TCPA software stack 420, and TPM driver 430. As described above, software between online TPM 210 and application 220, e.g., TCPA software stack 420, may or may not be trusted. Commands from application 220 are processed through software stack 420 and driver 430 before reaching online TPM 210. In addition, network communications require logic to implement a network communications protocol. In the illustrated embodiment, the protocol logic is implemented by TCP/IP stack 440. Network connectivity is provided by NIC 460. To support NIC 460, a peripheral component interconnect (PCI) NIC driver 450 is provided. Note that in the embodiment shown, online TPM 210 and NIC 460 are collocated in an ethernet controller 470.

[0036] The data flow for this embodiment is illustrated in FIG. 5. A command 510 passes through TCPA software stack 420 and TPM driver 430 before reaching online TPM 210. Online TPM 210 then proxies out the command to a hardware security module. To accomplish this, the command is routed from online TPM 210 through TPM driver 430 to TCP/IP software stack 440. The command is then sent, via NIC driver 450 to NIC 460. The command is then sent via the computer network to a security module (not shown). Result and status information 520 is returned from the security module through NIC 460, NIC driver 450, and TCP/IP stack 440. Information 520 is then passed to online TPM 210 via TPM driver 430. Information 520 is then passed back to application 220 via TPM driver 430 and TCP/IP software stack 420.

[0037] Note that in the embodiment shown, online TPM 210 and NIC 460 can communicate through a connection 530. This allows a more immediate and secure connection between online TPM 210 and the security module during the boot process. TCP/IP stack 440 and NIC driver 450 can be effectively circumvented during that process. During the secure boot process, the security module can therefore be directly accessed to obtain information regarding the necessary state of the online TPM 210. Hence, online TPM 210 can be connected to the security module, even when the platform is otherwise shut down. The boot process will be described in greater detail below.

[0038] III. Method

[0039] Information processing at an online TPM is illustrated in FIG. 6. The process begins at step 610. In step 620, the boot sequence is performed. In step 630, a command is received from the application. In step 640, the command is sent by the online TPM to a security module. In step 650, after the security module has completed processing of the command, the online TPM receives result and status information from the security module. The process concludes at step 660.

[0040] The boot sequence is illustrated in greater detail in FIG. 7. This process begins at step 710. In step 720, a sequence of code associated with the basic input output system (BIOS) is executed. In step 730, integrity measurements are performed with respect to code and data stored at the online TPM. The integrity measurement process is defined by the TCPA Main Specification, Version 1.1b of which is incorporated herein by reference in its entirety (available at http://www.trustedcomputing.org/docs/main%20v1_(—)1b.pdf). In general, the integrity measurement process includes the hashing of code segments prior to execution. Note that the integrity measurement process is not proxied out to the security module. On the contrary, integrity measurement is performed locally to the online TPM. The process of booting concludes at step 740.

[0041] IV. Conclusion

[0042] While various embodiments of the present invention have been described above it should be understood that they have been presented by way of example, and not limitation. It would be apparent to persons skilled in the relevant art that various changes in detail can be made therein without departing from the spirit and scope of the invention. Thus, the present invention should not be limited by any of the above described exemplary embodiments. 

What is claimed is:
 1. A system for remote performance of network security functions, comprising: an online trusted platform module (TPM) located at a client machine; at least one application that sends commands to said online TPM; and a security module in communication with said online TPM and located at a server machine, such that at least one command received by said online TPM from said application is proxied out to said security module for execution.
 2. The system of claim 1, wherein said security module and said online TPM are connected via a communication path that employs the transport layer security (TLS) protocol.
 3. The system of claim 1, further comprising an untrusted software stack that contains logic for intermediate processing between said application and said online TPM.
 4. The system of claim 1, wherein said online TPM and said security module are compliant with a version of the Trusted Computing Platform Architecture (TCPA) Main Specification.
 5. The system of claim 1, wherein said security module stores cryptographic state information on behalf of said online TPM.
 6. The system of claim 5, wherein said security module stores all cryptographic state information on behalf of said online TPM.
 7. The system of claim 6, wherein said online TPM is implemented without non-volatile memory (NVM).
 8. The system of claim 1, wherein said security module executes commands that are proxied out from at least one additional online TPM located at least one corresponding additional client machine.
 9. The system of claim 1, wherein said security module and said online TPM are authenticated to each other.
 10. The system of claim 1, wherein said online TPM is in direct communication with a network interface device at said client machine, such that cryptographic state information can be retrieved by said online TPM from said security module via said network interface device while circumventing network protocol processing.
 11. The system of claim 10, wherein said network protocol processing comprises processing related to the transmission control protocol/internet protocol (TCP/IP).
 12. The system of claim 10, wherein said online TPM and said network interface device are embodied in an ethernet controller.
 13. The system of claim 1, wherein the system is compatible with a version of the TCPA Main Specification.
 14. The system of claim 1, wherein said security module is implemented in hardware.
 15. The system of claim 1, wherein said security module comprises logic implemented in software.
 16. The system of claim 15, wherein said software is upgradable independent of said client.
 17. The system of claim 1, wherein said security module is incorporated in a server.
 18. A method of proxying a command in a network security system, from an online trusted platform module (TPM) in a client machine to a security module at a server machine, comprising the steps of: (a) receiving the command from an application; (b) sending the command to the security module; and (c) receiving result and status data from the security module.
 19. The method of claim 18, wherein steps (b) and (c) are performed via a communications path that employs the transport layer security (TLS) protocol.
 20. The method of claim 18, further comprising the step of: (d) performing a boot sequence, performed prior to step (a).
 21. The method of step 20, wherein step (d) comprises: (i) executing a block of basic input output system (BIOS) code; and (ii) performing integrity measurements.
 22. The method of step 21, wherein step (i) comprises retrieval of cryptographic state information from the security module.
 23. The method of claim 22, wherein said retrieval of cryptographic state information is performed via a direct connection between the online TPM and a network interface device at the client machine while circumventing network protocol processing at the client machine. 